import 'package:flutter/material.dart';

import 'pages/login/index.dart';
import 'pages/notice/index.dart';
import 'pages/profile/index.dart';
import 'pages/tab_bar_page.dart';
import 'utils/token.dart';

void main() {
  runApp(MaterialApp(
    routes: {
      '/': (context) => const TabBarPage(),
      // 公告详情
      '/detail': (context) => const NoticeDetail(),
      // /profile:......      没有了路由拦截功能， 直接跳！！
    },
    // 路由拦截 跳转页面刻触发  = 路由导航守卫
    onGenerateRoute: (settings) {
      // login 和   profile 底下代码就触发了
      // http://localhost:53742/#/detail/100

      // /detail/100

      // print("跳转1");
      // print(settings);
      // print("跳转2");

// 通过 if 条件判断处理  决定是否允许用户进行跳转

// 角色控制！！ 权限控制

      final tokenManager = TokenManager();
      final token = tokenManager.getToken() ?? '';
      if (token.isEmpty && settings.name != '/login') {
        return MaterialPageRoute(builder: (context) => const LoginPage());
      }

      if (settings.name == '/profile') {
        return MaterialPageRoute(builder: (context) => ProfilePage());
      }

      return null;
    },
    initialRoute: '/',
  ));
}
